﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using TracNghiem.Areas.Admin.Models;
using System.Collections;

namespace TracNghiem.Areas.Admin.Controllers
{
    [Authorize(Roles = "admin")]
    public class PhanLoaiController : Controller
    {
        //
        // GET: /Admin/PhanLoai/
        PhanLoaiModel PhanLoaiModel = new PhanLoaiModel();
        DichvuModel DichvuModel = new DichvuModel();

        public static List<PhanLoaiModel> list_Sapxep = new List<PhanLoaiModel>();
        public ActionResult Index(int id)
        {
            List<PhanLoaiModel> pl = PhanLoaiModel.getPhan_LoaiByDV(id);

            list_Sapxep = pl;            
            ViewBag.dichvu_id = id;
            DichvuModel dvu = DichvuModel.getDichvu().Find(delegate(DichvuModel s) { return s.id == id.ToString(); });
            
            ViewBag.tendichvu = dvu.name;
            return View(pl);
        }
        public ActionResult AddPhanLoai(int id)
        {
            //List<DichvuModel> dichvuModel = DichvuModel.getDichvu();
            //PhanLoaiModel.service_id = new SelectList(dichvuModel, "id", "name");
            DichvuModel PhanLoaiModel_ = DichvuModel.getDichvu().Find(delegate(DichvuModel s) { return s.id == id.ToString(); });
            @ViewBag.dichvu_id = PhanLoaiModel_.id;
            @ViewBag.ten_dich_vu = PhanLoaiModel_.name;
            return View(PhanLoaiModel);
        }
        [HttpPost]
        public ActionResult AddPhanLoai(PhanLoaiModel PhanLoai)
        {
            string dichvu_id = Request.Form["dichvu_id"];
            DichvuModel PhanLoaiModel_ = DichvuModel.getDichvu().Find(delegate(DichvuModel s) { return s.id == dichvu_id.ToString(); });
            if (ModelState.IsValid)
            {
                PhanLoai.dichvu_id = dichvu_id;
                PhanLoai.addPhanLoai(PhanLoai);
                TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
                return RedirectToAction("Index", new { id=dichvu_id});
            }
            TempData["msg"] = "Bạn đã nhập sai thông tin!";
            //PhanLoai.service_id = new SelectList(dichvuModel, "id", "name");
            @ViewBag.dichvu_id = PhanLoaiModel_.id;
            @ViewBag.ten_dich_vu = PhanLoaiModel_.name;
            return View(PhanLoai);
        }
        public ActionResult EditPhanLoai(int id)
        {
            PhanLoaiModel PhanLoaiModel_ = PhanLoaiModel.getPhan_Loai().Find(delegate(PhanLoaiModel s) { return s.id == id.ToString(); });
            List<DichvuModel> dichvuModel = DichvuModel.getDichvu();
            PhanLoaiModel_.service_id = new SelectList(dichvuModel, "id", "name");
            return View(PhanLoaiModel_);
        }
        [HttpPost]
        public ActionResult EditPhanLoai(PhanLoaiModel PhanLoai)
        {
            if (ModelState.IsValid)
            {
                PhanLoaiModel.updatePhanLoai(PhanLoai);
                TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
                return RedirectToAction("Index", new { id=PhanLoai.dichvu_id});
            }
            TempData["msg"] = "Bạn đã nhập sai thông tin!";
            //List<DichvuModel> dichvuModel = DichvuModel.getDichvu();
            //PhanLoai.service_id = new SelectList(dichvuModel, "id", "name");
            return View(PhanLoai);
        }
        public ActionResult DeletePhanLoai(int id,int dichvu_id)
        {
            PhanLoaiModel.deletePhanLoai(id);
            List<PhanLoaiModel> ts = PhanLoaiModel.getPhan_Loai();
            TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
            return RedirectToAction("Index",new{id=dichvu_id});
        }
        public ActionResult Sapxep_PhanLoai(string dichvu_id,string id, string order)
        {
            int vi_tri = list_Sapxep.FindIndex(delegate(PhanLoaiModel s) { return s.id == id; });
            if (order == "1")
            {
                if (vi_tri > 0)
                { 
                    string a = list_Sapxep[vi_tri].vi_tri;
                    list_Sapxep[vi_tri].vi_tri = list_Sapxep[vi_tri - 1].vi_tri;
                    list_Sapxep[vi_tri - 1].vi_tri = a;                    
                }
            }
            else
            {
                if (vi_tri < list_Sapxep.ToArray().Length - 1)
                {
                    string a = list_Sapxep[vi_tri].vi_tri;
                    list_Sapxep[vi_tri].vi_tri = list_Sapxep[vi_tri + 1].vi_tri;
                    list_Sapxep[vi_tri + 1].vi_tri = a;
                }
            }
            PhanLoaiModel.updateVi_tri(list_Sapxep);
            return RedirectToAction("Index",new{id=dichvu_id});
        }
        //public ActionResult FindPhanLoai()
        //{
        //    return RedirectToAction("Index");
        //}
        //[HttpPost]
        //public ActionResult FindPhanLoai(string timkiem)
        //{
        //    string dichvu_id = "";
        //    int num;
        //    bool dichvu_id_check = int.TryParse(dichvu_id, out num);
        //    string s = "";
        //    //add by Namtd 09/03/2014
        //    ViewBag.selectedDichvu = "";
        //    if (int.TryParse(Request.Form["service_id"], out num))
        //    {
        //        dichvu_id = Request.Form["service_id"];
        //        s = " and b.id=" + dichvu_id;
        //        ViewBag.selectedDichvu = Request.Form["service_id"];
        //    }
        //    else
        //    {
        //        s = "";
        //    }
        //    string sql;
        //    sql = s ;
            
        //    ViewBag.find_textbox = timkiem;
        //    ViewBag.find_selectbox = Request["select_option"];
        //    PhanLoaiModel PhanLoaiModel = new PhanLoaiModel();
        //    List<PhanLoaiModel> PhanLoai = PhanLoaiModel.FindPhanLoai(sql);
        //    List<DichvuModel> dichvuModel = DichvuModel.getDichvu();
        //    if (ViewBag.selectedDichvu.Length == 0)
        //        ViewBag.dichvu_id = new SelectList(dichvuModel, "id", "name");
        //    else
        //    {
        //        ViewBag.dichvu_id = new SelectList(dichvuModel, "id", "name", ViewBag.selectedDichvu);
        //    }
        //    return View("Index", PhanLoai);
        //}

    }
}
